//Quelle Uhr: http://www.derlifestyleshop.de/images/product_images/popup_images/simpsons_wecker_homer_0199391.jpg

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;


namespace whereIsTheDonutGame
{

    public class Timer : Microsoft.Xna.Framework.DrawableGameComponent
    {
        donutGame game;

        SpriteFont font;
        SpriteBatch spriteBatch;

        Texture2D timerTexture;   

        public float setzteSpieldauerInSek;
        public bool zeitAbgelaufen;
        public  float vergangeneZeitInSek;
        public int verbleibendeZeit;
        
        int screenWidth, screenHeight;  

        public Timer(donutGame game, float setzteSpieldauerInSek, 
            int screenWidth, int screenHeight)
            : base(game)
        {
            this.game = game;
            this.setzteSpieldauerInSek = setzteSpieldauerInSek;
            this.screenWidth = screenWidth;
            this.screenHeight = screenHeight;
        }

       
        public override void Initialize()
        {
            zeitAbgelaufen = false;
            base.Initialize();
        }

        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(Game.GraphicsDevice);
            font = Game.Content.Load<SpriteFont>("Schriften/Arial");
            timerTexture = game.Content.Load<Texture2D>("Hud-Content/TimerUhr");
        }

        public override void Update(GameTime gameTime)
        {
            verbleibendeZeit = (int)((setzteSpieldauerInSek - vergangeneZeitInSek)+0.5);    //Runden mit +0.5 weil cast auf int einfach nur Nullstellen abschneidet

            if (!zeitAbgelaufen && verbleibendeZeit >= 0)
            {
                if (game.player.life != 0)
                {
                    vergangeneZeitInSek += (float)gameTime.ElapsedGameTime.TotalSeconds;
                    zeitAbgelaufen = false;
                }
                else
                {
                    //weiter Zeitnahme gestoppt.
                }

            }
            else
            {
                zeitAbgelaufen = true;
                verbleibendeZeit = 0;
            }    
               
            base.Update(gameTime);
        }

        public override void Draw(GameTime gameTime)
        {
            spriteBatch.Begin();
            spriteBatch.DrawString(
                font,   //die Schriftart
                "" + verbleibendeZeit,    //einfacher Text
                new Vector2(screenWidth - 120, 115),          //Position auf Bildschirm
                 verbleibendeZeit < 10 ? Color.OrangeRed : Color.LightGreen,    //Farbe ändert sich
                0.0f,                              //Rotation um eigenen Mittelpunkt
                Vector2.Zero,                     //Ursprung des Sprites
                0.9f,                             //Scale
                SpriteEffects.None,               //Effekte
                0.0f                              //Tiefe der Ebene; 0 vorderste
            );
            
            spriteBatch.Draw(timerTexture, new Vector2(screenWidth - 65, 85), Color.White);

            spriteBatch.End();
        }



    }
}
